package com.hsource.doctorcenter.service.api;

import java.security.NoSuchAlgorithmException;
import java.text.ParseException;
import java.util.Map;

/**
 * @author yangYang
 * @version 1.0
 * @date 2020/9/24 13:27
 * @describe 调用第三方API
 */
public interface IApiService {

    /**
     * 获取问题详情
     * @param problemId
     * @param userId
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String getProblemDetail(String problemId,String userId) throws ParseException, NoSuchAlgorithmException;
    /**
     * 退款接口
     * @param paramsMap 退款参数
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    boolean refundApi(Map<String,String> paramsMap);
    /**
     * 问题追问
     * @param userId 用户id
     * @param content 内容
     * @param problemId 问题id
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String problemContent(String userId,String content,String problemId) throws ParseException, NoSuchAlgorithmException;

    /**
     * 创建定向电话
     * @param userId 用户Id
     * @param content 问题内容
     * @param price 价格
     * @param doctorIds 指定医生 使用#进行连接多个医生，不能有空格
     * @param partnerOrderId 合作方支付ID
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String createOrientedOrder(String userId,String doctorIds,String content,Integer price,String partnerOrderId,String phone,String inquiryTime,int minutes) throws ParseException, NoSuchAlgorithmException;
    /**
     * 获取医生可预约时间|时长价格
     * @param doctorId 医生Id
     * @param userId 用户Id
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String getDoctorPhoneInfo(String doctorId,String userId) throws ParseException, NoSuchAlgorithmException;
    /**
     * 创建快捷电话问题接口
     * @param userId 用户Id
     * @param content 问题内容
     * @param clinicNo 科室
     * @param phone 电话
     * @param partnerOrderId 合作方支付ID
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
     String createFastPhone(String userId,String content,String clinicNo,String partnerOrderId,String phone) throws ParseException, NoSuchAlgorithmException;

    /**
     * 创建图文急诊问题接口
     * @param userId 用户Id
     * @param content 问题内容
     * @param clinicNo 科室
     * @param partnerOrderId 合作方支付ID
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String createEmergencyGraph(String userId,String content,String clinicNo,String partnerOrderId) throws ParseException, NoSuchAlgorithmException;

    /**
     * 创建快速提问问题（众包升级）-定向医生提问
     * @param userId 用户Id
     * @param content 问题内容
     * @param price 价格
     * @param doctorIds 指定医生 使用#进行连接多个医生，不能有空格
     * @param partnerOrderId 合作方支付ID
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String createOrientedProblem(String userId,String doctorIds,String content,Integer price,String partnerOrderId) throws ParseException, NoSuchAlgorithmException;

    /**
     * 创建快速提问问题（众包升级）
     * @param userId 用户Id
     * @param content 问题内容
     * @param payType 付费升级类型
     * @param partnerOrderId 合作方支付ID
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    public String createPaidProblem(String userId,String content,String payType,String partnerOrderId) throws ParseException, NoSuchAlgorithmException;

    /**
     * 提问历史
     * @param userId 用户Id
     * @param startNum 开始数 用于支持翻页功能,从 0 开始计数
     * @param count 每次取的问题数 最大值200
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String historicalQuestions(String userId,Integer startNum,Integer count) throws ParseException, NoSuchAlgorithmException;
    /**
     * 推荐医生列表
     * @param userId 用户id
     * @param ask 首次提问文字问题
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String recommendedDoctors(String userId,String ask) throws ParseException, NoSuchAlgorithmException;
    /**
     * 获取图文急诊科室信息
     * @param userId
     * @return
     */
    String getImageTextAndPhoneClinics(String userId,String clinicType) throws ParseException, NoSuchAlgorithmException;

    /**
     * 获取医生详情
     * @param userId 用户id
     * @param doctorId 医生id
     * @return
     * @throws ParseException
     * @throws NoSuchAlgorithmException
     */
    String getDoctorsDetailed(String userId,String doctorId) throws ParseException, NoSuchAlgorithmException;

    /**
     * 获取医生列表
     * @param userId 用户id
     * @param famousDoctor 是否是名医
     * @param startNum 开始数
     * @param count 页加载数量
     * @param province 省份
     * @param city 城市
     * @param serviceType 服务类型
     * @param clinicNo 科室编码
     * @return
     */
    String getDoctors(String userId,int famousDoctor,int startNum,int count,String province,String city,String serviceType,String clinicNo) throws ParseException, NoSuchAlgorithmException;

    /**
     * 搜索医生接口
     * @param queryText 搜索词
     * @param page 页码 1-10
     * @param province 省份
     * @param city 城市
     * @return
     */
    String searchDoctors(String userId,String queryText,int page,String province,String city) throws ParseException, NoSuchAlgorithmException;
}
